import axios from '@/js_sdk/axios-miniprogram/axios/es/index.js'
import store from '@/store'

let baseUrl // 根据不同的环境来配置不同的根路径
// baseUrl = 'http://console.peanut.keenonrobot.com:3000/mock/103/bdlow' // 易API的
  // baseUrl = 'http://192.168.31.24:5000/stock'  // 赵鹏的
  baseUrl = 'http://175.24.114.57:5002/stock' //  服务器的
  
// 每次都创建一个新的axios
const request = axios.create({
  baseURL: baseUrl,
  headers: {
    'Content-Type': 'application/json; charset=utf-8',
    'Cache-Control': 'no-cache'
  }
  
})


// 添加请求拦截器
request.interceptors.request.use((config) => {
  uni.showLoading({
    title: '加载中'
  })
  config.timeout = 10000
  // 在发送之前做些事,例如添加token
  // 最后需要将config 返回去
  // 如果已登录,且拿到了token，则设置token
  if (store.getters.token) {
    // console.log('设置token',store.getters.token)
    config.headers.Authorization = 'Bearer ' + store.getters.token
  }
  return config
},(err) => {
  // 对请求错误的处理
  
  return Promise.reject(err)
})

// 添加响应拦截器
request.interceptors.response.use((res) => {
  uni.hideLoading()
  // 对响应成功的处理
  // 根据业务码来判断本次操作是否成功
  const { data } = res
  if (data.code === 400) {
    // 无权限，清除本地信息，尝试微信登录,微信登录失败会自动跳转到绑定页面
    uni.clearStorageSync('token')
    store.dispatch('logOut')
    uni.showToast({
      title: '登录信息已失效，请重新登录',
      icon: 'none'
    })
    uni.navigateTo({
      url: '/pages/login/login'
    })
  } else if (data.code !== 200) {
    // 非0则是操作错误
    uni.showToast({
      title: `${data.message}`,
      icon: 'none'
    })
    return Promise.reject(data)
  } else {
    return data
  }
}, (err) => {
  uni.hideLoading()
  // 对响应错误的处理
  // 返回401则无权限，跳转到登录页
  if (err.response && err.response.status === 401) {
    // 无权限，尝试微信登录
    uni.showToast({
      title: '登录已失效，正在尝试重新登录',
      icon: 'none'
    })
    uni.clearStorageSync('token')
    store.dispatch('loginByWxReq')
  }
  return Promise.reject(err)
})
export default request